import request from '../utils/request';

/**
 * 创建设备参数接口
 * @param {string} name 设备参数名称
 * @param {string} displayName 设备参数显示名称
 * @param {string} unit 设备参数单位
 * @param {string} description 设备参数描述
 */
export function createDeviceParameterApi(name, displayName, unit, description) {
  return request({
    url: '/device_parameters',
    method: 'post',
    data: {
      name: name,
      display_name: displayName,
      unit: unit,
      description: description
    }
  });
}

/**
 * 删除设备参数接口
 * @param {number} id path
 */
export function deleteDeviceParameterApi(id) {
  return request({
    url: '/device_parameters/' + id,
    method: 'delete'
  });
}

/**
 * 更新设备参数接口
 * @param {number} id path
 * @param {string} name 设备参数名称
 * @param {string} displayName 设备参数显示名称
 * @param {string} unit 设备参数单位
 * @param {string} description 设备参数描述
 */
export function updateDeviceParameterApi(id, name, displayName, unit, description) {
  return request({
    url: '/device_parameters/' + id,
    method: 'put',
    data: {
      name: name,
      display_name: displayName,
      unit: unit,
      description: description
    }
  });
}

/**
 * 获取设备参数列表接口
 * @param {number} pageIndex 页码下标，默认从0开始
 * @param {number} pageSize 每页大小
 * @param {string} sortType 正序or倒序
 * @param {string} orderBy 排序依据
 * @param {string} name 设备参数名称
 */
export function getDeviceParameterListApi(pageIndex, pageSize, sortType, orderBy, name) {
  return request({
    url: '/device_parameters',
    method: 'get',
    params: {
      page_index: pageIndex,
      page_size: pageSize,
      sort_type: sortType,
      order_by: orderBy,
      name: name
    }
  });
}

/**
 * 获取设备参数信息接口
 * @param {number} id 编号
 */
export function getDeviceParameterInfoApi(id) {
  return request({
    url: '/device_parameters/' + id,
    method: 'get'
  });
}

/**
 * 查询设备参数列表接口
 * @param {string} name 设备参数名称
 * @param {number} take 获取数量 5-100
 */
export function queryDeviceParameterListApi(name, take) {
  return request({
    url: '/device_parameters/query',
    method: 'get',
    params: { name, take }
  });
}
